
#ifndef __ORDEREDUNITS_H__
#define __ORDEREDUNITS_H__

#include <Unit.h>
#include <UnitsVisitor.h>
#include <vector>

struct OrderedUnits
{
	void addUnit( const Unit &unit );
	void accept( UnitsVisitor* visitor) const;

	static const OrderedUnits* getOrderedUnits();

private:
	OrderedUnits();

private:
	typedef std::vector<const Unit*> UnitList;
	UnitList orderedUnits_m;
};

static const OrderedUnits* ORDERED_UNITS = OrderedUnits::getOrderedUnits();

#endif

